// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.statement.SQLTableElement;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../OracleSQLObjectImpl.h"
#include "../../../../ast/statement/SQLTableElement.h"

class OracleSupplementalLogGrp : virtual public OracleSQLObjectImpl, virtual public SQLTableElement
{
public:
  SQLName_ptr group;
  SQLName_list_ptr columns;
  BOOL_ptr always;

  OracleSupplementalLogGrp();
  SHAREDOBJECT(OracleSupplementalLogGrp);
  
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  SQLName_ptr getGroup();

  void setGroup(SQLName_ptr group);

  SQLName_list_ptr getColumns();

  void addColumn(SQLName_ptr column);

  BOOL_ptr isAlways();

  void setAlways(BOOL_ptr always);

  SQLObject_ptr clone();
};
